package com.lwj.service.quartz;

import com.lwj.model.quartz.JobInfo;
import org.springframework.scheduling.quartz.QuartzJobBean;

import java.util.List;
import java.util.Map;

public interface QuartzService {
    /**
     * 增加一个job
     *
     */
    void addJob( JobInfo jobInfo);
    /**
     * 增加一个job
     */
    void addJobByTime(JobInfo jobInfo);
    /**
     * 修改 一个job的 时间表达式
     *
     * @param jobName
     * @param jobGroupName
     * @param jobTime
     */
    void updateJob(String jobName, String jobGroupName, String jobTime);
    /**
     * 删除任务一个job
     *
     * @param jobName      任务名称
     * @param jobGroupName 任务组名
     */
    void deleteJob(String jobName, String jobGroupName);

    /**
     * 暂停一个job
     *
     * @param jobName
     * @param jobGroupName
     */
    void pauseJob(String jobName, String jobGroupName);
    /**
     * 恢复一个job
     *
     * @param jobName
     * @param jobGroupName
     */
    void resumeJob(String jobName, String jobGroupName);
    /**
     * 立即执行一个job
     *
     * @param jobName
     * @param jobGroupName
     */
    void runAJobNow(String jobName, String jobGroupName);
    /**
     * 获取所有计划中的任务列表
     *
     * @return
     */
    List<JobInfo> queryAllJob();
    /**
     * 获取所有正在运行的job sync
     *
     * @return
     */
    List<JobInfo> queryRunJob();
}
